perm filename DRAIT.F4[CMS,LCS]1 blob sn#093942 filedate 1974-03-26 generic text, type T, neo UTF8
00100		DIMENSION II(1000),JJ(1000),KK(1000),LL(1000),KP(5),NN(4000)
00200		COMMON KP,NP,NN
00300		IMP(I)=IABS(NN(I)/100000000)
00400	1	JE=0
00500		MN=0
00600		IP=-1
00700		MO=0
00800		NZ=10
00900		IM=0
01000		NF=1
01100		CALL DPYCLR
01200		CALL TYPLOC(-350,-511)
01300		DO 407 I=1,4
01400	407	KP(I)='     '
01500		CALL DPYSET(4,LL,1000)
01600		CALL DPYSET(3,KK,1000)
01700		CALL DPYSET(2,JJ,1000)
01800		CALL DPYSET(1,II,1000)
01900		MN=0
02000	2	TYPE 5
02100	5	FORMAT(' TYPE:<CR>;TO DRAW NEW PICTURE.'/
02200		1' OR TYPE IN NAME TO USE OLD PICTURE.'/)
02300		ACCEPT 3,NAM
02400	3	FORMAT(A5)
02500		IF(NAM.EQ.'     ')GO TO 140
02600	   	IF(.NOT.LOOKD(NAM))GO TO 2
02700	515	CALL IFILE(1,NAM)
02800		READ(1)LE,(NN(K),K=MN+1,MN+LE)
02900		MN=MN+LE
03000		IP=-1
03100		IF(MO.NE.'P')GO TO 517
03200		MO=100000000
03300		DO 518 K=MN-LE+1,MN
03400		MP=1
03500		IF(NN(K))MP=-1
03600		NN(K)=IABS(NN(K))
03700	518	NN(K)=MP*(NP*MO+(MOD(NN(K),MO)))
03800		GO TO 503
03900	517	DO 388 K=1,MN
04000		NP=IMP(K)
04100		CALL SETPOG(NP)
04200		CALL INXY(NX,NY,K)
04300		MP=1
04400		IF(NN(K))MP=-1
04500	388	CALL IPEN(NX,NY,MP,NZ)
04600	   	DO 193 I=1,4
04700		KP(I)='VIS  '
04800	193	CALL DPYOUT(I)
04900		CALL SETPOG(1)
05000	140	NP=1
05100		CALL IPOG(NZ)
05200	
05300	211	NS=0
05400	120	LV=0
05500	144	CALL SETCUR(NX,NY,LV)
05600		IF(NS)TYPE 6
05700	6	FORMAT(' :'$)
05800		ACCEPT 103,M,N
05900	103	FORMAT(2A1)
06000		LX=NX
06100		LY=NY
06200		CALL RDCUR(NX,NY)
06300		IF(NC)GO TO 191
06400		IF(M.NE.' ')GO TO 11
06500	308	IF(LV.NE.0)GO TO 192
06600	301	CALL IPAK(NX,NY,MN,1,NZ)
06700		LV=1
06800		GO TO 144
06900	192 	CALL IPAK(NX,NY,MN,-1,NZ)
07000	341	N=NP
07100	278	CALL DPYOUT(N)
07200		KP(N)='VIS  '
07300	360	IF(IP)CALL IPOG(NZ)
07400	260	IF(NS)GO TO 144
07500		GO TO 120
07600	
07700	11	IF(M.EQ.':')GO TO 261
07800		IF(M.EQ.'.')GO TO 303
07900		IF(M.EQ.'W')GO TO 380
08000	  	IF(M.EQ.'H')GO TO 306
08100		IF(M.EQ.'V')GO TO 307
08200		IF(M.EQ.'B')GO TO 105
08300	  	IF(M.EQ.'C')GO TO 150
08400		IF(M.EQ.'+')GO TO 500
08500		IF(M.EQ.'-')GO TO 501
08600		IF(M.EQ.'*')GO TO 502
08700		IF(M.EQ.'A')GO TO 510
08800		IF(M.EQ.'E')GO TO 425
08900		IF(M.EQ.'(')GO TO 431
09000		IF(M.EQ.')')GO TO 432
09100	  	IF(M.EQ.'I'.OR.M.EQ.'S')GO TO 230
09200		IF(M.EQ.'X')GO TO 104
09300		IF(M.EQ.'Z')GO TO 580
09400		IF(M.NE.'P')GO TO 260
09500		IP=-1
09600		IF(N.EQ.'I')GO TO 258
09700		IF(N.EQ.'D')GO TO 340
09800		IF(N.NE.' ')GO TO 231
09900	259	NP=NP+1
10000		IF(NP.GT.4)NP=1
10100	251	CALL SETPOG(NP)
10200		GO TO 503
10300	303	IF(LV.EQ.0)GO TO 301
10400		CALL IPAK(NX,NY,MN,-1,NZ)
10500	333	KP(NP)='VIS  '
10600		IF(IP)CALL IPOG(NZ)
10700		CALL DPYOUT(NP)
10800		NX=LX
10900		NY=LY
11000		IF(.NOT.NC)GO TO 301
11100		NC=0
11200		GO TO 211
11300	306	NY=LY
11400		GO TO 308
11500	307	NX=LX
11600		GO TO 308
11700	230	IF(N.EQ.' ')GO TO 258
11800	231	IF(N.LT.'1'.OR.N.GT.'4')GO TO 255
11900		REREAD 408,M,N
12000	408	FORMAT(A1,I1)
12100		IF(M.EQ.'S')GO TO 278
12200	   	IF(M.NE.'I')GO TO 256
12300	257	KP(N)='     '
12400		CALL HYDPOG(N)
12500		IF(M.EQ.'P')GO TO 259
12600		GO TO 360
12700	255	IF(M.EQ.'P')GO TO 259
12800	258	IF(M.EQ.'S')GO TO 341
12900		N=NP
13000		GO TO 257
13100	256	NP=N
13200		GO TO 251
13300	261	IF(NS)GO TO 211
13400		NS=-1
13500		IF(LV.EQ.1)GO TO 192
13600		GO TO 301
13700	580	IF(IP)GO TO 581
13800		IP=-1
13900		GO TO 360
14000	581	IP=0
14100		N=5
14200		GO TO 257
14300	500	IF(NZ.EQ.20)GO TO 503
14400		NZ=NZ+1
14500		GO TO 503
14600	501	IF(NZ.EQ.5)GO TO 503
14700		NZ=NZ-1
14800		GO TO 503
14900	502	IF(NZ.EQ.10)GO TO 503
15000		NZ=10
15100	503	CALL CLRPOG(NP)
15200		CALL IDRA(MN,NZ)
15300		GO TO 335
15400	510	REREAD 516,MO,NAM
15500	516	FORMAT(1XA1,A5)
15600		IF(.NOT.LOOKD(NAM))GO TO 260
15700		GO TO 515
15800	340	CALL CLRPOG(NP)
15900		J=0
16000	400	J=J+1
16100	507	IF(J.GT.MN)GO TO 466
16200		MP=IMP(J)
16300		IF(MP.NE.NP)GO TO 400
16400		DO 401 I=J,MN-1
16500	401	NN(I)=NN(I+1)
16600		MN=MN-1
16700		GO TO 507
16800	466	IF(JE)GO TO 467
16900		IP=-1
17000		GO TO 431
17100	105	IF(MN.LT.1.OR.IMP(MN).NE.NP)GO TO 335
17200		IF(NP.EQ.1)II(2)=II(2)-1
17300		IF(NP.EQ.2)JJ(2)=JJ(2)-1
17400		IF(NP.EQ.3)KK(2)=KK(2)-1
17500		IF(NP.EQ.4)LL(2)=LL(2)-1
17600	        CALL ACCPOG(NP)
17700		MN=MN-1
17800	335	NS=0
17900		GO TO 341
18000	150	NC=-1
18100		IF(LV.NE.1)GO TO 301
18200	191	R=0
18300		RM=(NX-LX)**2+(NY-LY)**2
18400		RM=SQRT(RM)
18500		KX=LX+RM*SIND(R)
18600		KY=LY+RM*COSD(R)
18700		CALL IPAK(KX,KY,MN,1,NZ)
18800		DO 151 K=6,360,6
18900		R=K
19000		KX=LX+RM*SIND(R)
19100		KY=LY+RM*COSD(R)
19200	151	CALL IPAK(KX,KY,MN,-1,NZ)
19300		GO TO 333
19400	380	IF(LV.NE.1)GO TO 103
19500		REREAD 377,M,N
19600	377	FORMAT(A1,I2)
19700		IF(N.LT.4)N=100
19800		KN=N/10
19900		IF(KN.LT.2)KN=2
20000		DO 381 I=0,N,KN
20100		CALL IPAK(LX-N/2+I,LY-N/2+I,MN,1,NZ)
20200	381	CALL IPAK(NX-N/2+I,NY-N/2+I,MN,-1,NZ)
20300		GO TO 341
20400	425	I=0
20500	426	I=I+1
20600		IF(I.GT.MN)GO TO 211
20700	430	IF(IMP(I).NE.NP)GO TO 426
20800	548	CALL INXY(NX,NY,I)
20900		CALL SETCUR(NX*NZ/10,NY*NZ/10,1)
21000		TYPE 469
21100	469	FORMAT(' ERASE?'$)
21200		ACCEPT 103,M,N
21300		IF(M.EQ.' ')GO TO 426
21400		IF(M.EQ.'Y')GO TO 470
21500		IF(M.EQ.'I')GO TO 547
21600		IF(M.NE.'B')GO TO 211
21700	549	I=I-1
21800		IF(I.LT.1)GO TO 211
21900		IF(IMP(I).NE.NP)GO TO 549
22000		GO TO 548
22100	547	NN(I)=IABS(NN(I))
22200		GO TO 471
22300	470	MN=MN-1
22400		DO 428 K=I,MN
22500	428	NN(K)=NN(K+1)
22600	471	CALL CLRPOG(NP)
22700		CALL IDRA(MN,NZ)
22800		CALL DPYOUT(NP)
22900		GO TO 430
23000	431	NX=0
23100		NY=0
23200		NF=MN+1
23300		IM=0
23400		GO TO 211
23500	432	IF(IM.EQ.0)IM=MN
23600		DO 433 I=NF,IM
23700		CALL INXY(IX,IY,I)
23800		IX=NX+IX
23900		IY=NY+IY
24000		MP=1
24100		IF(NN(I))MP=-1
24200	433	CALL IPAK(IX,IY,MN,MP,NZ)
24300		GO TO 341
24400	
24500	104	CALL CLRCUR
24600		CALL IPOG(NZ)
24700		IP=-1
24800	   	TYPE 111
24900	111	FORMAT(' TYPE:<CR>;TO CONTINUE.'/' TYPE:''N''<CR>;TO START OVER.'/
25000		2' TYPE:''F'' TO SAVE VIS POGS IF FINISHED'/
25100		3' OR TYPE:''P'' TO PLOT ALL VIS POGS'/)
25200		ACCEPT 103,M
25300		IF(M.EQ.'N')GO TO 1
25400		IF(M.EQ.'P')GO TO 557
25500		IF(M.NE.'F')GO TO 120
25600	127	TYPE 121
25700	121	FORMAT(' TYPE A FIVE LETTER NAME FOR THIS PICTURE.'/)
25800		ACCEPT 3,NAM
25900		IF(NAM.EQ.'     ')GO TO 127
26000	557	MP=0
26100		DO 405 NP=1,4
26200		IF(KP(NP).NE.'VIS  ')GO TO 405
26300		MP=MP+1
26400		CALL IPAK(0,0,MN,1,10)
26500	405	CONTINUE
26600		IF(MP.EQ.0)GO TO 104
26700		NP=0
26800		JE=-1
26900	467	NP=NP+1
27000		IF(NP.GT.4)GO TO 468
27100		IF(KP(NP).NE.'VIS  ')GO TO 340
27200		GO TO 467
27300	468	IF(M.EQ.'P')GO TO 555
27400		CALL OFILE(1,NAM)
27500		WRITE(1)MN,(NN(K),K=1,MN)
27600		END FILE 1
27700		GO TO 1
27800	555	TYPE 587
27900	587	FORMAT(/' PLOTING ALL VIS POGS'/)
28000		CALL PLOTS(I)
28100		DO 556 I=1,MN
28200		CALL INXY(NX,NY,I)
28300		MO=3
28400		IF(NN(I))MO=2
28500	556	CALL PLOT(NX*NZ/10,NY*NZ/10,MO)
28600		GO TO 1
28700		END
28800	
28900		SUBROUTINE IPOG(NZ)
29000		COMMON KP(5),NP,NN(4000)
29100		DIMENSION MM(30),JP(4)
29200		CALL DPYSET(5,MM,30)
29300		CALL DPYTXT(100,-430,'POG1 POG2 POG3 POG4 ZOOM ',5)
29400		KP(5)=' REG '
29500		IF(NZ.LT.10)KP(5)=' --- '
29600		IF(NZ.GT.10)KP(5)=' +++ '
29700		CALL DPYTXT(100,-450,KP,5)
29800		DO 4 J=1,4
29900		JP(J)='     '
30000	4	IF(J.EQ.NP)JP(J)=' ↑↑  '
30100		CALL DPYTXT(100,-470,JP,4)
30200		CALL DPYOUT(5)
30300		CALL SETPOG(NP)
30400		RETURN
30500		END
30600		SUBROUTINE IPAK(NX,NY,MN,MP,NZ)
30700		COMMON KP(5),NP,NN(4000)
30800		MN=MN+1
30900		IX=(NX*10/NZ)+1024
31000		IY=(NY*10/NZ)+1024
31100		NN(MN)=MP*(NP*100000000+IX*10000+IY)
31200		CALL IPEN(NX,NY,MP,10)
31300		RETURN
31400		END
31500		SUBROUTINE IPEN(NX,NY,MP,NZ)
31600		IX=NX*NZ/10
31700		IF(IX.GT.950)IX=950
31800		IF(IX.LT.-950)IX=-950
31900		IY=NY*NZ/10
32000		IF(IY.GT.950)IY=950
32100		IF(IY.LT.-950)IY=-950
32200		IF(MP)GO TO 1
32300		CALL AIVECT(IX,IY)
32400		RETURN
32500	1	CALL AVECT(IX,IY)
32600		RETURN
32700		END
32800		SUBROUTINE INXY(NX,NY,MN)
32900		COMMON KP(5),NP,NN(4000)
33000		J=IABS(NN(MN))
33100		NY=MOD(J,10000)-1024
33200		NX=(MOD(J,100000000)/10000)-1024
33300		RETURN
33400		END
33500		SUBROUTINE IDRA(MN,NZ)
33600		COMMON KP(5),NP,NN(4000)
33700		DO 1 I=1,MN
33800		IF(IABS(NN(I)/100000000).NE.NP)GO TO 1
33900		CALL INXY(IX,IY,I)
34000		CALL IPEN(IX,IY,NN(I),NZ)
34100	1	CONTINUE
34200		RETURN
34300		END